Design and Implementation of Signatures for Transactional Memory Systems
نویسنده
چکیده
Transactional Memory (TM) systems ease multithreaded application development by giving the programmer the ability to specify that some regions of code, called transactions, must be executed atomically. To achieve high efficiency, TM systems optimistically try to execute multiple transactions concurrently and either stall or abort some of them if a conflict occurs. A conflict happens if two or more transactions access to the same memory address, and at least one of the accesses is a write. TM systems must track the read and write sets —items read and written during a transaction— to detect possible conflicts. Several TMs, including Bulk, LogTM-SE, BulkSC, and SigTM, represent read and write sets with signatures, which allow unbounded read/write sets to be summarized in bounded hardware at a performance cost of false positives (conflicts detected when none actually existed). This study addresses the aspects of signature design and implementation for conflict detection in TM systems. We first cover the design of Bloom signatures (i.e. signatures implemented with Bloom filters), identifying their three design dimensions: size, number of hash functions, and type of hash functions. We find that true Bloom signatures, implemented with a k hash function Bloom filter, require k-ported SRAMs, which are not area efficient (for k ≥ 2). Instead, parallel Bloom signatures, which consist of k parallel Bloom filters with one hash function each, and the same total state, can be implemented with inexpensive single-ported memories, being about 8×more area-efficient for typical signature designs. Furthermore, we show that true and parallel Bloom signatures perform asymptotically the same in theory, and approximately the same in a practical setting with LogTM-SE under a variety of benchmarks. We perform a thorough evaluation of different Bloom signatures and find designs that achieve both higher performance than the previously recommended ones (reducing the execution time by a factor of two in some benchmarks), and are more robust, by exploiting the type of hash functions used. Additionally, we describe, analyze and evaluate three novel signature designs. First, Cuckoo-Bloom signatures adapt cuckoo hashing for hardware implementation and build an accurate hash-table based representation of small read/write sets (an important and common case), and morph dynamically into a Bloom filter as the sets get large, but do not support set intersection or union. Second, Hash-Bloom signatures use a simpler hash-table based representation and morph into a Bloom filter more gradually than Cuckoo-Bloom signatures, outperforming similar Bloom signature designs for both small and large read/write sets. And third, adaptive Bloom signatures, which use predictors to determine the optimal number of hash functions to use in a Bloom signature dynamically.
منابع مشابه
CS 752 Project proposal Improving the performance and hardware requirements of LogTM-SE
Hardware Transactional Memory systems intend to provide an easy to use programming model for multithreaded applications and high performance at the same time. LogTM-SE is one of these systems, and the object of this proposal. LogTM-SE is a solid TM implementation, supports unbounded transactions and works well with virtual memory, but there are some aspects of it that could be improved. We prop...
متن کاملDesigning a Software Transactional Memory for Peer-to-Peer Systems
Transactional memory is a rather novel approach to concurrency control in parallel computing, that has just recently found its way into distributed systems research. However, the research concentrates mainly on single processor solutions or cluster environment. In this paper we argue, that peer-to-peer systems would require a different design of transactional memory because of the increased fai...
متن کاملImplementation Tradeoffs in the Design of Flexible Transactional Memory Support1
We present FlexTM (FLEXible Transactional Memory), a high performance TM framework that allows software to determine when (eagerly, lazily, or in a mixed fashion) and how to manage conflicts, while employing hardware to manage transactional state and to track conflicts. FlexTM coordinates four decoupled hardware mechanisms: read and write signatures, which summarize perthread access sets; per-t...
متن کاملImplementation tradeoffs in the design of flexible transactional memory support
We present FlexTM (FLEXible Transactional Memory), a high performance TM framework that allows software to determine when (eagerly, lazily, or in a mixed fashion) and how to manage conflicts, while employing hardware to manage transactional state and to track conflicts. FlexTM coordinates four decoupled hardware mechanisms: read and write signatures, which summarize per-thread access sets; per-...
متن کاملLecture Notes in Computer Science 6965
Workload optimized systems consisting of large number of general and special purpose cores, and with a support for shared memory programming, are slowly becoming prevalent. One of the major impediments for effective parallel programming on these systems is lock-based synchronization. An alternate synchronization solution called Transactional Memory (TM) is currently being explored. We observe t...
متن کامل